<template>
  <loading-page>
  </loading-page>
</template>

<script>
  import LoadingPage from './LoadingPage'
  import WxUtil from '../utils/wx'
  // import defaultShareImg from '../perm/assets/108-01.jpg'

  export default {
    name: 'QywxLogin',
    components: { LoadingPage },
    data () {
      return {
        wx: null
      }
    },
    computed: {
      code () {
        const reg = new RegExp('(^|&)' + 'code' + '=([^&]*)(&|$)')
        const r = window.location.search.substr(1).match(reg)// search,查询？后面的参数，并匹配正则
        if (r != null) return decodeURIComponent(r[2])
        return null
      },
      loginReturnUrl () {
        return this.$route.query.loginReturnUrl
      }
    },
    mounted () {
        debugger
      this.getConfig()
      if (this.$route.query['test']) {
        // oyduW1Rr65uFrrTt4W2RfcqvENbc
        // this.loginByCode()
      } else {
        // this.checkStatus()
      }
    },
    methods: {
      getConfig () {

        // wx初始化微信设置
        WxUtil.init()
          .then(wx => {
            this.wx = wx
            // const shareData = {
            //   title: '必火互动，你的线上营销服务部',
            //   desc: '商家线上做活动，招生\\吸客\\引流\\传播\\微信推广必火帮你轻松实现！',
            //   link: '#/',
            //   imgUrl: defaultShareImg
            // }
            // 要隐藏的菜单项，只能隐藏“传播类”和“保护类”按钮，所有menu项见附录3
            wx.hideMenuItems({
              menuList: ['menuItem:share:timeline', 'menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone', 'menuItem:openWithSafari', 'menuItem:share:email']
            })
            // wx.onMenuShareTimeline({
            //     title: shareData.title, // 分享标题
            //     link: shareData.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            //     imgUrl: shareData.imgUrl, // 分享图标
            // });
            // wx.onMenuShareAppMessage({
            //   title: shareData.title, // 分享标题
            //   desc: shareData.desc, // 分享描述
            //   link: shareData.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            //   imgUrl: shareData.imgUrl, // 分享图标
            //   type: 'link' // 分享类型,music、video或link，不填默认为link
            //
            // })
            // 跳转登录页
            // this.$router.push({
            //   path: '/qywxLogin'
            // })
            // 跳转登录页
            // this.$router.push({
            //   path: '/WxGamePage'
            // })
              wx.invoke('selectExternalContact', {
                  'filterType': 0 // 0表示展示全部外部联系人列表，1表示仅展示未曾选择过的外部联系人。默认值为0；除了0与1，其他值非法。在企业微信2.4.22及以后版本支持该参数
              }, function (res) {
                  if (res.err_msg === 'selectExternalContact:ok') {
                      const userIds = res.userIds // 返回此次选择的外部联系人userId列表，数组类型
                      console.log(userIds)
                  } else {
                      // 错误处理
                  }
              })
            this.checkStatus()
            // wx.updateTimelineShareData(shareData);
            // wx.updateAppMessageShareData(shareData);
          })
          .catch(() => {
            alert('微信配置失败，请刷新重试')
          })
      },
      /**
       * 判断当前页面状态，
       * 如果未登录，则请求，否则直接跳过
       * 1、若第一进入，没有code，则使用微信重定向地址，获取code
       * 2、若有code，则使用code向后台获取access_token
       */
      checkStatus: function () {
        // 如果已有userId，就不处理
        const userId = this.$store.state.user.info.qwUserId
        if (userId) {
          this.$router.replace({
            path: '/WxGamePage',
            query: this.$route.query
          })
          return
        }
        if (this.code) {
          this.loginByCode()
        } else {
          this.redirect()
        }
      },
      redirect () {
        // 微信appId
        const appId = window.wx.appId
        const redirectUrl = encodeURIComponent(location.href)
        const scope = 'snsapi_userinfo'
        const state = this.$route.query
        location.replace(`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${redirectUrl}&response_type=code&scope=${scope}&state=${state}#wechat_redirect`)
      },
      loginByCode () {
        console.log(this.code)
        // const inviter = this.$route.query.ic
        // const fromB = this.$route.query.fb
        // const fromC = this.$route.query.fc
        // Auth.login({ username: this.code, params: { fromB, inviter, fromC } })
        //   .then((res) => {
        //     // 调整链接地址结构，因为微信返回的地址会类似
        //     // http://www.okbihuo.com/mxb?code=081ckRGB04hyvf2tCdIB0IX4HB0ckRGa&state=STATE#/wx
        //     // ?在#前面 跳转到 返回页面
        //     if (this.loginReturnUrl) {
        //       location.replace(this.loginReturnUrl)
        //     } else {
        //       location.replace(location.href.replace(location.search, ''))
        //       location.reload()
        //     }
        //   })
        //   .catch(error => {
        //     const errMessage = error.data.error_description
        //     // 多数情况是由于code失效的原因，因此去除微信的code重新刷新页面
        //   })
      }
    }
  }
</script>

<style scoped>

</style>
